package com.yuelao.yuelao_backend.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuelao.yuelao_backend.entity.UserTask;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.util.List;

@Mapper
public interface UserTaskMapper extends BaseMapper<UserTask> {

    /**
     * 查询用户在指定任务列表上完成任务的独立天数
     * @param userId 用户ID
     * @param taskIds 任务ID列表
     * @return 独立天数
     */
    Long selectCountOfDistinctDates(@Param("userId") Long userId, @Param("taskIds") List<Long> taskIds);

    /**
     * 检查用户是否在指定日期完成了任何一个日常任务
     * @param userId 用户ID
     * @param taskIds 任务ID列表
     * @param date 日期
     * @return 完成的任务数量
     */
    Long hasCompletedDailyTaskOnDate(@Param("userId") Long userId, @Param("taskIds") List<Long> taskIds, @Param("date") LocalDate date);
}